The total TAX amount for a given TAX category.
課税分類毎の消費税額合計。


About

Syntax binding
ubl:Invoice / cac:TaxTotal / cac:TaxSubtotal / cbc:TaxAmount
Restricted Syntax Cardinality
1..1
Example
8770
Attribute(s)
@currencyID
UBL 2.1
XPath
/ Invoice / cac:TaxTotal [ cbc:TaxAmount / @currencyID = / Invoice / cbc:DocumentCurrencyCode ] / cac:TaxSubtotal / cbc:TaxAmount
Occurrence
1
Datatype
AmountType
UBL Definition
The amount of this tax subtotal.
Namespace
cbc urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2

Semantic

Business Term

TAX category tax amount

課税分類毎の消費税額
ID
ibt-117
Description
The total TAX amount for a given TAX category.
課税分類毎の消費税額合計。
Cardinality
Semantic datatype
Amount

Code list(s)

ISO4217
ISO 4217 Currency codes

Child element

  XPath Syn. Card. Semantic Card. ID Business term
 / Invoice / cac:TaxTotal [ cbc:TaxAmount / @currencyID = / Invoice / cbc:DocumentCurrencyCode ] / cac:TaxSubtotal / cbc:TaxAmount / @currencyID 1..1 1..1

VERSION 1.0 RULES

Unchanged
Same as 0.9.3

VERSION 0.9.3 RULES
JP PINT 0.9.3 Aligned rules
aligned-ibr-jp-06(fatal)
Added
[aligned-ibr-jp-06]-Tax category tax amount (ibt-117) with currency code JPY and tax category tax amount in accounting currency (ibt-190) shall not have decimal.
context
cac:TaxSubtotal
test
not(
  contains(cbc:TaxAmount[@currencyID='JPY'],
    '.'
  )
)
aligned-ibrp-046(fatal)
Unchanged
Same as 0.9.2
aligned-ibrp-051-jp(fatal)
Added
[aligned-ibrp-051-jp]-Tax category tax amount (ibt-117) = tax category taxable amount (ibt-116) x (tax category rate (ibt-119) / 100), rounded to integer. The rounded result amount shall be between the floor and the ceiling.
context
cac:TaxSubtotal[cbc:TaxAmount/@currencyID=/ubl:Invoice/cbc:DocumentCurrencyCode/text()]
test
(
  (cac:TaxCategory/normalize-space(upper-case(cbc:ID)) != 'O') and
  (
    (round(cac:TaxCategory/xs:decimal(cbc:Percent)) != 0 and
      (
        xs:decimal(cbc:TaxAmount) >= floor(xs:decimal(cbc:TaxableAmount) * (cac:TaxCategory/xs:decimal(cbc:Percent) div 100))) and
      (
        xs:decimal(cbc:TaxAmount) <= ceiling(xs:decimal(cbc:TaxableAmount) * (cac:TaxCategory/xs:decimal(cbc:Percent) div 100)))) or
    (
      round(
        cac:TaxCategory/xs:decimal(cbc:Percent)) =
      0 and
      (
        xs:decimal(cbc:TaxAmount) =
        0)))) or
(
  not(
    cac:TaxCategory/cbc:Percent) and
  (cac:TaxCategory/normalize-space(upper-case(cbc:ID)) =
    'O') and
  (
    xs:decimal(cbc:TaxAmount) =
    0
  )
)
aligned-ibrp-e-09(fatal)
Changed Context
[aligned-ibrp-e-09]-The tax category tax amount (ibt-117) In a tax breakdown (ibg-23) where the tax category code (ibt-118) equals "Exempt from tax" MUST equal 0 (zero).
context
cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[normalize-space(cbc:ID) = 'E'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']
test
xs:decimal(../cbc:TaxAmount) =
0
aligned-ibrp-g-09(fatal)
Unchanged
Same as 0.9.2
aligned-ibrp-o-09(fatal)
Unchanged
Same as 0.9.2
JP PINT 0.9.3 Shared rule
ibr-co-14(fatal)
Unchanged
Same as 0.9.2

VERSION 0.9.2 RULES
JP PINT 0.9.2 Aligned rules
aligned-ibrp-046(fatal)
Still valid
[aligned-ibrp-046]-Each tax breakdown (ibg-23) MUST have a tax category tax amount (ibt-117).
context
cac:TaxSubtotal
test
exists(cbc:TaxAmount)
aligned-ibrp-051(fatal)
Obsoleted
[aligned-ibrp-051]-Tax category tax amount (ibt-117) = tax category taxable amount (ibt-116) x (tax category rate (ibt-119) / 100), rounded to two decimals.
context
cac:TaxSubtotal
test
(
  round(
    cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/xs:decimal(cbc:Percent)) =
  0 and
  (
    round(
      xs:decimal(cbc:TaxAmount)) =
    0)) or
(
  round(
    cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/xs:decimal(cbc:Percent)) != 0 and
  (u:slack(abs(xs:decimal(cbc:TaxAmount)) , round(abs(xs:decimal(cbc:TaxableAmount)) * (cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/xs:decimal(cbc:Percent) div 100) * 10 * 10) div 100, 0.02))) or
(
  not(
    exists(cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/xs:decimal(cbc:Percent))) and
  (
    round(
      xs:decimal(cbc:TaxAmount)) =
    0
  )
)
aligned-ibrp-ae-09(fatal)
Obsoleted
[aligned-ibrp-ae-09]-The tax category tax amount (ibt-117) in a tax breakdown (ibg-23) where tax category code (ibt-118) is "Reverse charge" MUST equal the tax category taxable amount (ibt-116) multiplied by the tax category rate (ibt-119).
context
/*/cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[normalize-space(cbc:ID) = 'AE'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']
test
xs:decimal(../cbc:TaxAmount) =
0
aligned-ibrp-e-09(fatal)
Obsoleted
[aligned-ibrp-e-09]-The tax category tax amount (ibt-117) In a tax breakdown (ibg-23) where the tax category code (ibt-118) equals "Exempt from tax" MUST equal 0 (zero).
context
/*/cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[normalize-space(cbc:ID) = 'E'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']
test
xs:decimal(../cbc:TaxAmount) =
0
aligned-ibrp-g-09(fatal)
Still valid
[aligned-ibrp-g-09]-The tax category tax amount (ibt-117) in a tax breakdown (ibg-23) where the tax category code (ibt-118) is "Export" MUST be 0 (zero).
context
/*/cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[normalize-space(cbc:ID) = 'G'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']
test
xs:decimal(../cbc:TaxAmount) =
0
aligned-ibrp-ic-09(fatal)
Obsoleted
[aligned-ibrp-ic-09]-The tax category tax amount (ibt-117) in a tax breakdown (ibg-23) where the tax category code (ibt-118) is "Intra-community supply" MUST be 0 (zero).
context
/*/cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[normalize-space(cbc:ID) = 'K'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']
test
xs:decimal(../cbc:TaxAmount) =
0
aligned-ibrp-o-09(fatal)
Still valid
[aligned-ibrp-o-09]-The tax category tax amount (ibt-117) in a tax breakdown (ibg-23) where the tax category code (ibt-118) is "Not subject to tax" MUST be 0 (zero).
context
/*/cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[normalize-space(cbc:ID) = 'O'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']
test
xs:decimal(../cbc:TaxAmount) =
0
aligned-ibrp-s-09(fatal)
Obsoleted
[aligned-ibrp-s-09]-The tax category tax amount (ibt-117) in a tax breakdown (ibg-23) where tax category code (ibt-118) is "Standard rated" MUST equal the tax category taxable amount (ibt-116) multiplied by the tax category rate (ibt-119).
context
/*/cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[normalize-space(cbc:ID) = 'S'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']
test
u:slack(abs(xs:decimal(../cbc:TaxAmount)) , round((abs(xs:decimal(../cbc:TaxableAmount)) * (xs:decimal(cbc:Percent) div 100)) * 10 * 10) div 100 ,0.02)
aligned-ibrp-z-09(fatal)
Obsoleted
[aligned-ibrp-z-09]-The tax category tax amount (ibt-117) in a tax breakdown (ibg-23) where tax category code (ibt-118) is "Zero rated" MUST equal 0 (zero).
context
/*/cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[normalize-space(cbc:ID) = 'Z'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']
test
xs:decimal(../cbc:TaxAmount) =
0
JP PINT 0.9.2 Shared rule
ibr-co-14(fatal)
Still valid
[ibr-co-14]-Invoice total Tax amount (ibt-110) = Σ Tax category tax amount (ibt-117).
context
/ubl:Invoice/cac:TaxTotal |
/cn:CreditNote/cac:Taxtotal
test
(
  xs:decimal(child::cbc:TaxAmount)= round((sum(cac:TaxSubtotal/xs:decimal(cbc:TaxAmount)) * 10 * 10)) div 100) or
not(cac:TaxSubtotal)
Code list rule (Shared rule)
ibr-cl-03 (fatal)
[ibr-cl-03]-currencyID MUST be coded using ISO code list 4217 alpha-3.
Context
cbc:TaxAmount
Test
(
  (
    not(contains(normalize-space(@currencyID), ' ')) and
    contains(' AED AFN ALL AMD ANG AOA ARS AUD AWG AZN BAM BBD BDT BGN BHD BIF BMD BND BOB BOV BRL BSD BTN BWP BYR BZD CAD CDF CHE CHF CHW CLF CLP CNY COP COU CRC CUC CUP CVE CZK DJF DKK DOP DZD EGP ERN ETB EUR FJD FKP GBP GEL GHS GIP GMD GNF GTQ GYD HKD HNL HRK HTG HUF IDR ILS INR IQD IRR ISK JMD JOD JPY KES KGS KHR KMF KPW KRW KWD KYD KZT LAK LBP LKR LRD LSL LYD MAD MDL MGA MKD MMK MNT MOP MRO MUR MVR MWK MXN MXV MYR MZN NAD NGN NIO NOK NPR NZD OMR PAB PEN PGK PHP PKR PLN PYG QAR RON RSD RUB RWF SAR SBD SCR SDG SEK SGD SHP SLL SOS SRD SSP STD SVC SYP SZL THB TJS TMT TND TOP TRY TTD TWD TZS UAH UGX USD USN UYI UYU UZS VEF VND VUV WST XAF XAG XAU XBA XBB XBC XBD XCD XDR XOF XPD XPF XPT XSU XTS XUA XXX YER ZAR ZMW ZWL ',
      concat(' ', normalize-space(@currencyID), ' ')
    )
  )
)
ibr-cl-04 (fatal)
[ibr-cl-04]-Invoice currency code MUST be coded using ISO code list 4217 alpha-3
Context
cbc:DocumentCurrencyCode
Test
(
  (
    not(contains(normalize-space(.), ' ')) and
    contains(' AED AFN ALL AMD ANG AOA ARS AUD AWG AZN BAM BBD BDT BGN BHD BIF BMD BND BOB BOV BRL BSD BTN BWP BYR BZD CAD CDF CHE CHF CHW CLF CLP CNY COP COU CRC CUC CUP CVE CZK DJF DKK DOP DZD EGP ERN ETB EUR FJD FKP GBP GEL GHS GIP GMD GNF GTQ GYD HKD HNL HRK HTG HUF IDR ILS INR IQD IRR ISK JMD JOD JPY KES KGS KHR KMF KPW KRW KWD KYD KZT LAK LBP LKR LRD LSL LYD MAD MDL MGA MKD MMK MNT MOP MRO MUR MVR MWK MXN MXV MYR MZN NAD NGN NIO NOK NPR NZD OMR PAB PEN PGK PHP PKR PLN PYG QAR RON RSD RUB RWF SAR SBD SCR SDG SEK SGD SHP SLL SOS SRD SSP STD SVC SYP SZL THB TJS TMT TND TOP TRY TTD TWD TZS UAH UGX USD USN UYI UYU UZS VEF VND VUV WST XAF XAG XAU XBA XBB XBC XBD XCD XDR XOF XPD XPF XPT XSU XTS XUA XXX YER ZAR ZMW ZWL ',
      concat(' ', normalize-space(.), ' ')
    )
  )
)

VERSION 0.9.1 RULES (Obsoleted)
Aligned rules (0.9.1)
aligned-ibrp-e-09 (fatal)
[aligned-ibrp-e-09]-The tax category tax amount (ibt-117) In a tax breakdown (ibg-23) where the tax category code (ibt-118) equals "Exempt from tax" MUST equal 0 (zero).
Context
cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[normalize-space(cbc:ID) = 'E'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']
Test
xs:decimal(../cbc:TaxAmount) =
0
aligned-ibrp-o-09 (fatal)
[aligned-ibrp-o-09]-The tax category tax amount (ibt-117) in a tax breakdown (ibg-23) where the tax category code (ibt-118) is "Not subject to tax" MUST be 0 (zero).
Context
/*/cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[normalize-space(cbc:ID) = 'O'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']
Test
xs:decimal(../cbc:TaxAmount) =
0
aligned-ibrp-046 (fatal)
[aligned-ibrp-046]-Each tax breakdown (ibg-23) MUST have a tax category tax amount (ibt-117).
Context
cac:TaxSubtotal
Test
exists(cbc:TaxAmount)
aligned-ibrp-051-jp (fatal)
[aligned-ibrp-051-jp]-Tax category tax amount (ibt-117) = tax category taxable amount (ibt-116) x (tax category rate (ibt-119) / 100), rounded to integer. The rounded result amount shall be between the floor and the ceiling..
Context
cac:TaxSubtotal
Test
(
  round(
    cac:TaxCategory/xs:decimal(cbc:Percent)) != 0 and
  (
    xs:decimal(cbc:TaxAmount) >= floor(xs:decimal(cbc:TaxableAmount) * (cac:TaxCategory/xs:decimal(cbc:Percent) div 100))) and
  (
    xs:decimal(cbc:TaxAmount) <= ceiling(xs:decimal(cbc:TaxableAmount) * (cac:TaxCategory/xs:decimal(cbc:Percent) div 100))
  )
)
aligned-ibrp-g-09 (fatal)
[aligned-ibrp-g-09]-The tax category tax amount (ibt-117) in a tax breakdown (ibg-23) where the tax category code (ibt-118) is "Export" MUST be 0 (zero).
Context
/*/cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[normalize-space(cbc:ID) = 'G'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']
Test
xs:decimal(../cbc:TaxAmount) =
0
aligned-ibr-jp-06 (fatal)
[aligned-ibr-jp-06]-Tax category tax amount (ibt-117) with currency code JPY and tax category tax amount in accounting currency (ibt-190) shall not have decimal.
Context
cac:TaxSubtotal
Test
not(
  contains(cbc:TaxAmount[@currencyID='JPY'],
    '.'
  )
)
Shared rules (0.9.1)
aligned-ibrp-e-09 (fatal)
[aligned-ibrp-e-09]-The tax category tax amount (ibt-117) In a tax breakdown (ibg-23) where the tax category code (ibt-118) equals "Exempt from tax" MUST equal 0 (zero).
Context
cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[normalize-space(cbc:ID) = 'E'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']
Test
xs:decimal(../cbc:TaxAmount) =
0
aligned-ibrp-o-09 (fatal)
[aligned-ibrp-o-09]-The tax category tax amount (ibt-117) in a tax breakdown (ibg-23) where the tax category code (ibt-118) is "Not subject to tax" MUST be 0 (zero).
Context
/*/cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[normalize-space(cbc:ID) = 'O'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']
Test
xs:decimal(../cbc:TaxAmount) =
0
aligned-ibrp-046 (fatal)
[aligned-ibrp-046]-Each tax breakdown (ibg-23) MUST have a tax category tax amount (ibt-117).
Context
cac:TaxSubtotal
Test
exists(cbc:TaxAmount)
aligned-ibrp-051-jp (fatal)
[aligned-ibrp-051-jp]-Tax category tax amount (ibt-117) = tax category taxable amount (ibt-116) x (tax category rate (ibt-119) / 100), rounded to integer. The rounded result amount shall be between the floor and the ceiling..
Context
cac:TaxSubtotal
Test
(
  round(
    cac:TaxCategory/xs:decimal(cbc:Percent)) != 0 and
  (
    xs:decimal(cbc:TaxAmount) >= floor(xs:decimal(cbc:TaxableAmount) * (cac:TaxCategory/xs:decimal(cbc:Percent) div 100))) and
  (
    xs:decimal(cbc:TaxAmount) <= ceiling(xs:decimal(cbc:TaxableAmount) * (cac:TaxCategory/xs:decimal(cbc:Percent) div 100))
  )
)
aligned-ibrp-g-09 (fatal)
[aligned-ibrp-g-09]-The tax category tax amount (ibt-117) in a tax breakdown (ibg-23) where the tax category code (ibt-118) is "Export" MUST be 0 (zero).
Context
/*/cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[normalize-space(cbc:ID) = 'G'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']
Test
xs:decimal(../cbc:TaxAmount) =
0
aligned-ibr-jp-06 (fatal)
[aligned-ibr-jp-06]-Tax category tax amount (ibt-117) with currency code JPY and tax category tax amount in accounting currency (ibt-190) shall not have decimal.
Context
cac:TaxSubtotal
Test
not(
  contains(cbc:TaxAmount[@currencyID='JPY'],
    '.'
  )
)

JP PINT 0.9 RULES (Obsoleted)
Aligned Rules (0.9)
jp-br-46(fatal)
[jp-br-46]-Each Tax breakdown (ibg-23) shall have a Tax category tax amount (ibt-117).
Context
cac:TaxTotal[cbc:TaxAmount/@currencyID=../cbc:DocumentCurrencyCode]/cac:TaxSubtotal
Test
exists(cbc:TaxAmount)
Shared Rule (0.9)
ibr-co-14(fatal)
[ibr-co-14]-Invoice total Tax amount (ibt-110) = Σ Tax category tax amount (ibt-117).
Context
/ubl:Invoice/cac:TaxTotal | /cn:CreditNote/cac:Taxtotal
Test
(
  xs:decimal(child::cbc:TaxAmount)= round((sum(cac:TaxSubtotal/xs:decimal(cbc:TaxAmount)) * 10 * 10)) div 100) or
not(cac:TaxSubtotal)
EN16931 model bound to UBL rules
BR-46 (fatal)
Each VAT breakdown (BG-23) shall have a VAT category tax amount (BT-117).
context
cac:TaxTotal/cac:TaxSubtotal
test
exists(cbc:TaxAmount)
BR-AE-09 (fatal)
The VAT category tax amount (BT-117) in a VAT breakdown (BG-23) where the VAT category code (BT-118) is "Reverse charge" shall be 0 (zero).
context
/*/cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[normalize-space(cbc:ID) = 'AE'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']
test
xs:decimal(../cbc:TaxAmount) =
0
BR-CO-14 (fatal)
Invoice total VAT amount (BT-110) = Σ VAT category tax amount (BT-117).
context
/ubl:Invoice/cac:TaxTotal |
/cn:CreditNote/cac:TaxTotal
test
(
  xs:decimal(child::cbc:TaxAmount)= round((sum(cac:TaxSubtotal/xs:decimal(cbc:TaxAmount)) * 10 * 10)) div 100) or
not(cac:TaxSubtotal)
BR-CO-17 (fatal)
VAT category tax amount (BT-117) = VAT category taxable amount (BT-116) x (VAT category rate (BT-119) / 100), rounded to two decimals.
context
cac:TaxTotal/cac:TaxSubtotal
test
(
  round(
    cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/xs:decimal(cbc:Percent)) =
  0 and
  (
    round(
      xs:decimal(cbc:TaxAmount)) =
    0)) or
(
  round(
    cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/xs:decimal(cbc:Percent)) != 0 and
  (
    (abs(xs:decimal(cbc:TaxAmount)) -
      1 < round(abs(xs:decimal(cbc:TaxableAmount)) * (cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/xs:decimal(cbc:Percent) div 100
        ) * 10 * 10
      ) div 100
    )
     and
    (abs(xs:decimal(cbc:TaxAmount)) +
      1 > round(abs(xs:decimal(cbc:TaxableAmount)) * (cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/xs:decimal(cbc:Percent) div 100
        ) * 10 * 10
      ) div 100
    )
)) or
(
  not(
    exists(cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/xs:decimal(cbc:Percent))) and
  (
    round(
      xs:decimal(cbc:TaxAmount)) =
    0
  )
)
BR-DEC-20 (fatal)
The allowed maximum number of decimals for the VAT category tax amount (BT-117) is 2.
context
cac:TaxTotal/cac:TaxSubtotal
test
string-length(substring-after(cbc:TaxAmount,'.'))<=2
BR-E-09 (fatal)
The VAT category tax amount (BT-117) In a VAT breakdown (BG-23) where the VAT category code (BT-118) equals "Exempt from VAT" shall equal 0 (zero).
context
/*/cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[normalize-space(cbc:ID) = 'E'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']
test
xs:decimal(../cbc:TaxAmount) =
0
BR-G-09 (fatal)
The VAT category tax amount (BT-117) in a VAT breakdown (BG-23) where the VAT category code (BT-118) is "Export outside the EU" shall be 0 (zero).
context
/*/cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[normalize-space(cbc:ID) = 'G'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']
test
xs:decimal(../cbc:TaxAmount) =
0
BR-IC-09 (fatal)
The VAT category tax amount (BT-117) in a VAT breakdown (BG-23) where the VAT category code (BT-118) is "Intra-community supply" shall be 0 (zero).
context
/*/cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[normalize-space(cbc:ID) = 'K'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']
test
xs:decimal(../cbc:TaxAmount) =
0
BR-IG-09 (fatal)
The VAT category tax amount (BT-117) in a VAT breakdown (BG-23) where VAT category code (BT-118) is "IGIC" shall equal the VAT category taxable amount (BT-116) multiplied by the VAT category rate (BT-119).
context
/*/cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[normalize-space(cbc:ID) = 'L'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']
test
(abs(xs:decimal(../cbc:TaxAmount)) -
  1 < round((abs(xs:decimal(../cbc:TaxableAmount)) * (xs:decimal(cbc:Percent) div 100)
    ) * 10 * 10
  ) div 100
)
and
(abs(xs:decimal(../cbc:TaxAmount)) +
  1 > round((abs(xs:decimal(../cbc:TaxableAmount)) * (xs:decimal(cbc:Percent) div 100)
    ) * 10 * 10
  ) div 100
)
BR-IP-09 (fatal)
The VAT category tax amount (BT-117) in a VAT breakdown (BG-23) where VAT category code (BT-118) is "IPSI" shall equal the VAT category taxable amount (BT-116) multiplied by the VAT category rate (BT-119).
context
/*/cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[normalize-space(cbc:ID) = 'M'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']
test
(abs(xs:decimal(../cbc:TaxAmount)) -
  1 < round((abs(xs:decimal(../cbc:TaxableAmount)) * (xs:decimal(cbc:Percent) div 100)
    ) * 10 * 10
  ) div 100
)
and
(abs(xs:decimal(../cbc:TaxAmount)) +
  1 > round((abs(xs:decimal(../cbc:TaxableAmount)) * (xs:decimal(cbc:Percent) div 100)
    ) * 10 * 10
  ) div 100
)
BR-O-09 (fatal)
The VAT category tax amount (BT-117) in a VAT breakdown (BG-23) where the VAT category code (BT-118) is "Not subject to VAT" shall be 0 (zero).
context
/*/cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[normalize-space(cbc:ID) = 'O'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']
test
xs:decimal(../cbc:TaxAmount) =
0
BR-S-09 (fatal)
The VAT category tax amount (BT-117) in a VAT breakdown (BG-23) where VAT category code (BT-118) is "Standard rated" shall equal the VAT category taxable amount (BT-116) multiplied by the VAT category rate (BT-119).
context
/*/cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[normalize-space(cbc:ID) = 'S'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']
test
(abs(xs:decimal(../cbc:TaxAmount)) -
  1 < round((abs(xs:decimal(../cbc:TaxableAmount)) * (xs:decimal(cbc:Percent) div 100)
    ) * 10 * 10
  ) div 100
)
and
(abs(xs:decimal(../cbc:TaxAmount)) +
  1 > round((abs(xs:decimal(../cbc:TaxableAmount)) * (xs:decimal(cbc:Percent) div 100)
    ) * 10 * 10
  ) div 100
)
BR-Z-09 (fatal)
The VAT category tax amount (BT-117) in a VAT breakdown (BG-23) where VAT category code (BT-118) is "Zero rated" shall equal 0 (zero).
context
/*/cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[normalize-space(cbc:ID) = 'Z'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']
test
xs:decimal(../cbc:TaxAmount) =
0